Use

Resource-Related Operation Statement

Syntax samples

USE {<quantity>} <resource> {,<priority>}
FOR <time> {AND or OR {<quantity>}
<resource> {,<priority>} FOR <time>... }

USE 2 Res2, 5 FOR 4:23:03

USE 2 Res1 FOR 2.0 min OR 3 Res2 FOR 1.5 min

USE Res1, 3 FOR 1 hr AND (Res2 FOR 5 OR Res3 FOR 5)

USE Oper_Attr RES(Type_Attr) FOR Time_Var1 Hr

Description

Captures a resource or combination of resources as each resource becomes available. Once the resource has been captured it is used for the specified amount of time, and then freed when the specified duration is over. If the entity already possesses one of the specified resources from a previous GET, JOINTLY GET, or MOVE WITH statement, the entity will still try to capture an additional unit of that resource.

Please note

If an entity uses a USE statement to capture a resource, the resource must complete its operation before you can preempt the entity. However, if the entity uses a GET, WAIT, FREE sequence, you may preempt the entity during the WAIT portion of the logic.

If multiple units of a resource type are defined in the USE statement, the time specified after the FOR will be treated as "total man-hours". For example, in the statement "USE 2 Worker FOR 1 HR," a total of two man-hours is required (i.e. 2 units x 1 hour = 2 man-hours). In the case where only one unit of the Worker resource is available, that unit could be used for a total elapsed time of two hours if a second unit never becomes available during the process. However, if two units of the Worker resource are available at the same time, only one hour of elapsed processing time will occur. To further illustrate, if one unit is captured and used for one hour after which time the second unit is then captured, the remaining one man-hour of time will be divided between the two units and together will complete it in half an hour. In this case, the entity would be processed in an elapsed time of 1.5 hours.

Valid In

Location processing logic, downtime logic, and move logic.

Components

<quantity>

The number of resources to get. ProModel ignores a value of zero and values less than zero return an error. ProModel evaluates and truncates this numeric expression every time it encounters the USE statement.

<resource>

The name of the resource to USE. You can substitute RES() for the resource name.

<priority>

When multiple entities request a resource, ProModel fills the requests in order of priority. This expression should be a number between 0 and 999.

<time>

The length of time the entity will tie up the resource. ProModel evaluates this expression whenever it encounters the statement. If you specify no time unit, ProModel applies the default time unit specified in the General Information dialog.

Example

This simple example shows how Clients arriving at location Reception must USE the Secretary for some amount of time according to the user-defined distribution, Dist1. Clients are then sent to a waiting area until the desired next location becomes available.

Process Table

Entity

Location

Operation (min)

Client

Reception

USE Secretary

FOR Dist1()

Client

 

 

Waiting

 

Routing Table

Blk

Output

Destination

Rule

Move Logic

1

Client

Waiting

FIRST 1

MOVE FOR 30 sec

1

Client

Loan

.400 1

MOVE FOR 1

Client

Auditor

.350 1

MOVE FOR 1

Client

Service

.250 1

MOVE FOR 1

See Also

GET, JOINTLY GET, and MOVE WITH.